//===----------------------------------------------------------------------===//
//
// This source file is part of the Soto for AWS open source project
//
// Copyright (c) 2017-2024 the Soto project authors
// Licensed under Apache License v2.0
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of Soto project authors
//
// SPDX-License-Identifier: Apache-2.0
//
//===----------------------------------------------------------------------===//

// THIS FILE IS AUTOMATICALLY GENERATED by https://github.com/soto-project/soto-codegenerator.
// DO NOT EDIT.

#if canImport(FoundationEssentials)
import FoundationEssentials
#else
import Foundation
#endif
@_exported import SotoCore

/// Service object for interacting with AWS RoboMaker service.
///
/// This section provides documentation for the AWS RoboMaker API operations.
public struct RoboMaker: AWSService {
    // MARK: Member variables

    /// Client used for communication with AWS
    public let client: AWSClient
    /// Service configuration
    public let config: AWSServiceConfig

    // MARK: Initialization

    /// Initialize the RoboMaker client
    /// - parameters:
    ///     - client: AWSClient used to process requests
    ///     - region: Region of server you want to communicate with. This will override the partition parameter.
    ///     - partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov).
    ///     - endpoint: Custom endpoint URL to use instead of standard AWS servers
    ///     - middleware: Middleware chain used to edit requests before they are sent and responses before they are decoded 
    ///     - timeout: Timeout value for HTTP requests
    ///     - byteBufferAllocator: Allocator for ByteBuffers
    ///     - options: Service options
    public init(
        client: AWSClient,
        region: SotoCore.Region? = nil,
        partition: AWSPartition = .aws,
        endpoint: String? = nil,
        middleware: AWSMiddlewareProtocol? = nil,
        timeout: TimeAmount? = nil,
        byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(),
        options: AWSServiceConfig.Options = []
    ) {
        self.client = client
        self.config = AWSServiceConfig(
            region: region,
            partition: region?.partition ?? partition,
            serviceName: "RoboMaker",
            serviceIdentifier: "robomaker",
            serviceProtocol: .restjson,
            apiVersion: "2018-06-29",
            endpoint: endpoint,
            errorType: RoboMakerErrorType.self,
            middleware: middleware,
            timeout: timeout,
            byteBufferAllocator: byteBufferAllocator,
            options: options
        )
    }





    // MARK: API Calls

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes one or more worlds in a batch operation.
    @Sendable
    @inlinable
    public func batchDeleteWorlds(_ input: BatchDeleteWorldsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchDeleteWorldsResponse {
        try await self.client.execute(
            operation: "BatchDeleteWorlds", 
            path: "/batchDeleteWorlds", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes one or more worlds in a batch operation.
    ///
    /// Parameters:
    ///   - worlds: A list of Amazon Resource Names (arns) that correspond to worlds to delete.
    ///   - logger: Logger use during operation
    @inlinable
    public func batchDeleteWorlds(
        worlds: [String],
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> BatchDeleteWorldsResponse {
        let input = BatchDeleteWorldsRequest(
            worlds: worlds
        )
        return try await self.batchDeleteWorlds(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes one or more simulation jobs.
    @Sendable
    @inlinable
    public func batchDescribeSimulationJob(_ input: BatchDescribeSimulationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> BatchDescribeSimulationJobResponse {
        try await self.client.execute(
            operation: "BatchDescribeSimulationJob", 
            path: "/batchDescribeSimulationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes one or more simulation jobs.
    ///
    /// Parameters:
    ///   - jobs: A list of Amazon Resource Names (ARNs) of simulation jobs to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func batchDescribeSimulationJob(
        jobs: [String],
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> BatchDescribeSimulationJobResponse {
        let input = BatchDescribeSimulationJobRequest(
            jobs: jobs
        )
        return try await self.batchDescribeSimulationJob(input, logger: logger)
    }

    ///  This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Cancels the specified deployment job.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func cancelDeploymentJob(_ input: CancelDeploymentJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelDeploymentJobResponse {
        try await self.client.execute(
            operation: "CancelDeploymentJob", 
            path: "/cancelDeploymentJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Cancels the specified deployment job.
    ///
    /// Parameters:
    ///   - job: The deployment job ARN to cancel.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func cancelDeploymentJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CancelDeploymentJobResponse {
        let input = CancelDeploymentJobRequest(
            job: job
        )
        return try await self.cancelDeploymentJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified simulation job.
    @Sendable
    @inlinable
    public func cancelSimulationJob(_ input: CancelSimulationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelSimulationJobResponse {
        try await self.client.execute(
            operation: "CancelSimulationJob", 
            path: "/cancelSimulationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified simulation job.
    ///
    /// Parameters:
    ///   - job: The simulation job ARN to cancel.
    ///   - logger: Logger use during operation
    @inlinable
    public func cancelSimulationJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CancelSimulationJobResponse {
        let input = CancelSimulationJobRequest(
            job: job
        )
        return try await self.cancelSimulationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels a simulation job batch. When you cancel a simulation job batch, you are also cancelling all of the active simulation jobs created as part of the batch.
    @Sendable
    @inlinable
    public func cancelSimulationJobBatch(_ input: CancelSimulationJobBatchRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelSimulationJobBatchResponse {
        try await self.client.execute(
            operation: "CancelSimulationJobBatch", 
            path: "/cancelSimulationJobBatch", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels a simulation job batch. When you cancel a simulation job batch, you are also cancelling all of the active simulation jobs created as part of the batch.
    ///
    /// Parameters:
    ///   - batch: The id of the batch to cancel.
    ///   - logger: Logger use during operation
    @inlinable
    public func cancelSimulationJobBatch(
        batch: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CancelSimulationJobBatchResponse {
        let input = CancelSimulationJobBatchRequest(
            batch: batch
        )
        return try await self.cancelSimulationJobBatch(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified export job.
    @Sendable
    @inlinable
    public func cancelWorldExportJob(_ input: CancelWorldExportJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelWorldExportJobResponse {
        try await self.client.execute(
            operation: "CancelWorldExportJob", 
            path: "/cancelWorldExportJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified export job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (arn) of the world export job to cancel.
    ///   - logger: Logger use during operation
    @inlinable
    public func cancelWorldExportJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CancelWorldExportJobResponse {
        let input = CancelWorldExportJobRequest(
            job: job
        )
        return try await self.cancelWorldExportJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified world generator job.
    @Sendable
    @inlinable
    public func cancelWorldGenerationJob(_ input: CancelWorldGenerationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CancelWorldGenerationJobResponse {
        try await self.client.execute(
            operation: "CancelWorldGenerationJob", 
            path: "/cancelWorldGenerationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Cancels the specified world generator job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (arn) of the world generator job to cancel.
    ///   - logger: Logger use during operation
    @inlinable
    public func cancelWorldGenerationJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CancelWorldGenerationJobResponse {
        let input = CancelWorldGenerationJobRequest(
            job: job
        )
        return try await self.cancelWorldGenerationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Deploys a specific version of a robot application to robots in a fleet. The robot application must have a numbered applicationVersion for consistency reasons. To create a new version, use CreateRobotApplicationVersion or see  Creating a Robot Application Version.   After 90 days, deployment jobs expire and will be deleted. They will no longer be accessible.
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func createDeploymentJob(_ input: CreateDeploymentJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateDeploymentJobResponse {
        try await self.client.execute(
            operation: "CreateDeploymentJob", 
            path: "/createDeploymentJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Deploys a specific version of a robot application to robots in a fleet. The robot application must have a numbered applicationVersion for consistency reasons. To create a new version, use CreateRobotApplicationVersion or see  Creating a Robot Application Version.   After 90 days, deployment jobs expire and will be deleted. They will no longer be accessible.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - deploymentApplicationConfigs: The deployment application configuration.
    ///   - deploymentConfig: The requested deployment configuration.
    ///   - fleet: The Amazon Resource Name (ARN) of the fleet to deploy.
    ///   - tags: A map that contains tag keys and tag values that are attached to the deployment job.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func createDeploymentJob(
        clientRequestToken: String = CreateDeploymentJobRequest.idempotencyToken(),
        deploymentApplicationConfigs: [DeploymentApplicationConfig],
        deploymentConfig: DeploymentConfig? = nil,
        fleet: String,
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateDeploymentJobResponse {
        let input = CreateDeploymentJobRequest(
            clientRequestToken: clientRequestToken, 
            deploymentApplicationConfigs: deploymentApplicationConfigs, 
            deploymentConfig: deploymentConfig, 
            fleet: fleet, 
            tags: tags
        )
        return try await self.createDeploymentJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Creates a fleet, a logical group of robots running the same robot application.
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func createFleet(_ input: CreateFleetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateFleetResponse {
        try await self.client.execute(
            operation: "CreateFleet", 
            path: "/createFleet", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Creates a fleet, a logical group of robots running the same robot application.
    ///
    /// Parameters:
    ///   - name: The name of the fleet.
    ///   - tags: A map that contains tag keys and tag values that are attached to the fleet.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func createFleet(
        name: String,
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateFleetResponse {
        let input = CreateFleetRequest(
            name: name, 
            tags: tags
        )
        return try await self.createFleet(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Creates a robot.
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func createRobot(_ input: CreateRobotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRobotResponse {
        try await self.client.execute(
            operation: "CreateRobot", 
            path: "/createRobot", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.  Creates a robot.
    ///
    /// Parameters:
    ///   - architecture: The target architecture of the robot.
    ///   - greengrassGroupId: The Greengrass group id.
    ///   - name: The name for the robot.
    ///   - tags: A map that contains tag keys and tag values that are attached to the robot.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func createRobot(
        architecture: Architecture,
        greengrassGroupId: String,
        name: String,
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateRobotResponse {
        let input = CreateRobotRequest(
            architecture: architecture, 
            greengrassGroupId: greengrassGroupId, 
            name: name, 
            tags: tags
        )
        return try await self.createRobot(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a robot application.
    @Sendable
    @inlinable
    public func createRobotApplication(_ input: CreateRobotApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRobotApplicationResponse {
        try await self.client.execute(
            operation: "CreateRobotApplication", 
            path: "/createRobotApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a robot application.
    ///
    /// Parameters:
    ///   - environment: The object that contains that URI of the Docker image that you use for your robot application.
    ///   - name: The name of the robot application.
    ///   - robotSoftwareSuite: The robot software suite used by the robot application.
    ///   - sources: The sources of the robot application.
    ///   - tags: A map that contains tag keys and tag values that are attached to the robot application.
    ///   - logger: Logger use during operation
    @inlinable
    public func createRobotApplication(
        environment: Environment? = nil,
        name: String,
        robotSoftwareSuite: RobotSoftwareSuite,
        sources: [SourceConfig]? = nil,
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateRobotApplicationResponse {
        let input = CreateRobotApplicationRequest(
            environment: environment, 
            name: name, 
            robotSoftwareSuite: robotSoftwareSuite, 
            sources: sources, 
            tags: tags
        )
        return try await self.createRobotApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a version of a robot application.
    @Sendable
    @inlinable
    public func createRobotApplicationVersion(_ input: CreateRobotApplicationVersionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateRobotApplicationVersionResponse {
        try await self.client.execute(
            operation: "CreateRobotApplicationVersion", 
            path: "/createRobotApplicationVersion", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a version of a robot application.
    ///
    /// Parameters:
    ///   - application: The application information for the robot application.
    ///   - currentRevisionId: The current revision id for the robot application. If you provide a value and it matches the latest revision ID, a new version will be created.
    ///   - imageDigest: A SHA256 identifier for the Docker image that you use for your robot application.
    ///   - s3Etags: The Amazon S3 identifier for the zip file bundle that you use for your robot application.
    ///   - logger: Logger use during operation
    @inlinable
    public func createRobotApplicationVersion(
        application: String,
        currentRevisionId: String? = nil,
        imageDigest: String? = nil,
        s3Etags: [String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateRobotApplicationVersionResponse {
        let input = CreateRobotApplicationVersionRequest(
            application: application, 
            currentRevisionId: currentRevisionId, 
            imageDigest: imageDigest, 
            s3Etags: s3Etags
        )
        return try await self.createRobotApplicationVersion(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation application.
    @Sendable
    @inlinable
    public func createSimulationApplication(_ input: CreateSimulationApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSimulationApplicationResponse {
        try await self.client.execute(
            operation: "CreateSimulationApplication", 
            path: "/createSimulationApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation application.
    ///
    /// Parameters:
    ///   - environment: The object that contains the Docker image URI used to create your simulation application.
    ///   - name: The name of the simulation application.
    ///   - renderingEngine: The rendering engine for the simulation application.
    ///   - robotSoftwareSuite: The robot software suite used by the simulation application.
    ///   - simulationSoftwareSuite: The simulation software suite used by the simulation application.
    ///   - sources: The sources of the simulation application.
    ///   - tags: A map that contains tag keys and tag values that are attached to the simulation application.
    ///   - logger: Logger use during operation
    @inlinable
    public func createSimulationApplication(
        environment: Environment? = nil,
        name: String,
        renderingEngine: RenderingEngine? = nil,
        robotSoftwareSuite: RobotSoftwareSuite,
        simulationSoftwareSuite: SimulationSoftwareSuite,
        sources: [SourceConfig]? = nil,
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateSimulationApplicationResponse {
        let input = CreateSimulationApplicationRequest(
            environment: environment, 
            name: name, 
            renderingEngine: renderingEngine, 
            robotSoftwareSuite: robotSoftwareSuite, 
            simulationSoftwareSuite: simulationSoftwareSuite, 
            sources: sources, 
            tags: tags
        )
        return try await self.createSimulationApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation application with a specific revision id.
    @Sendable
    @inlinable
    public func createSimulationApplicationVersion(_ input: CreateSimulationApplicationVersionRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSimulationApplicationVersionResponse {
        try await self.client.execute(
            operation: "CreateSimulationApplicationVersion", 
            path: "/createSimulationApplicationVersion", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation application with a specific revision id.
    ///
    /// Parameters:
    ///   - application: The application information for the simulation application.
    ///   - currentRevisionId: The current revision id for the simulation application. If you provide a value and it matches the latest revision ID, a new version will be created.
    ///   - imageDigest: The SHA256 digest used to identify the Docker image URI used to created the simulation application.
    ///   - s3Etags: The Amazon S3 eTag identifier for the zip file bundle that you use to create the simulation application.
    ///   - logger: Logger use during operation
    @inlinable
    public func createSimulationApplicationVersion(
        application: String,
        currentRevisionId: String? = nil,
        imageDigest: String? = nil,
        s3Etags: [String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateSimulationApplicationVersionResponse {
        let input = CreateSimulationApplicationVersionRequest(
            application: application, 
            currentRevisionId: currentRevisionId, 
            imageDigest: imageDigest, 
            s3Etags: s3Etags
        )
        return try await self.createSimulationApplicationVersion(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation job.  After 90 days, simulation jobs expire and will be deleted. They will no longer be accessible.
    @Sendable
    @inlinable
    public func createSimulationJob(_ input: CreateSimulationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateSimulationJobResponse {
        try await self.client.execute(
            operation: "CreateSimulationJob", 
            path: "/createSimulationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a simulation job.  After 90 days, simulation jobs expire and will be deleted. They will no longer be accessible.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - compute: Compute information for the simulation job.
    ///   - dataSources: Specify data sources to mount read-only files from S3 into your simulation. These files are available under /opt/robomaker/datasources/data_source_name.   There is a limit of 100 files and a combined size of 25GB for all DataSourceConfig objects.
    ///   - failureBehavior: The failure behavior the simulation job.  Continue  Leaves the instance running for its maximum timeout duration after a 4XX error code.  Fail  Stop the simulation job and terminate the instance.
    ///   - iamRole: The IAM role name that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.
    ///   - loggingConfig: The logging configuration.
    ///   - maxJobDurationInSeconds: The maximum simulation job duration in seconds (up to 14 days or 1,209,600 seconds. When maxJobDurationInSeconds is reached, the simulation job will status will transition to Completed.
    ///   - outputLocation: Location for output files generated by the simulation job.
    ///   - robotApplications: The robot application to use in the simulation job.
    ///   - simulationApplications: The simulation application to use in the simulation job.
    ///   - tags: A map that contains tag keys and tag values that are attached to the simulation job.
    ///   - vpcConfig: If your simulation job accesses resources in a VPC, you provide this parameter identifying the list of security group IDs and subnet IDs. These must belong to the same VPC. You must provide at least one security group and one subnet ID.
    ///   - logger: Logger use during operation
    @inlinable
    public func createSimulationJob(
        clientRequestToken: String? = CreateSimulationJobRequest.idempotencyToken(),
        compute: Compute? = nil,
        dataSources: [DataSourceConfig]? = nil,
        failureBehavior: FailureBehavior? = nil,
        iamRole: String,
        loggingConfig: LoggingConfig? = nil,
        maxJobDurationInSeconds: Int64 = 0,
        outputLocation: OutputLocation? = nil,
        robotApplications: [RobotApplicationConfig]? = nil,
        simulationApplications: [SimulationApplicationConfig]? = nil,
        tags: [String: String]? = nil,
        vpcConfig: VPCConfig? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateSimulationJobResponse {
        let input = CreateSimulationJobRequest(
            clientRequestToken: clientRequestToken, 
            compute: compute, 
            dataSources: dataSources, 
            failureBehavior: failureBehavior, 
            iamRole: iamRole, 
            loggingConfig: loggingConfig, 
            maxJobDurationInSeconds: maxJobDurationInSeconds, 
            outputLocation: outputLocation, 
            robotApplications: robotApplications, 
            simulationApplications: simulationApplications, 
            tags: tags, 
            vpcConfig: vpcConfig
        )
        return try await self.createSimulationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a world export job.
    @Sendable
    @inlinable
    public func createWorldExportJob(_ input: CreateWorldExportJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateWorldExportJobResponse {
        try await self.client.execute(
            operation: "CreateWorldExportJob", 
            path: "/createWorldExportJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a world export job.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - iamRole: The IAM role that the world export process uses to access the Amazon S3 bucket and put the export.
    ///   - outputLocation: 
    ///   - tags: A map that contains tag keys and tag values that are attached to the world export job.
    ///   - worlds: A list of Amazon Resource Names (arns) that correspond to worlds to export.
    ///   - logger: Logger use during operation
    @inlinable
    public func createWorldExportJob(
        clientRequestToken: String? = CreateWorldExportJobRequest.idempotencyToken(),
        iamRole: String,
        outputLocation: OutputLocation,
        tags: [String: String]? = nil,
        worlds: [String],
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateWorldExportJobResponse {
        let input = CreateWorldExportJobRequest(
            clientRequestToken: clientRequestToken, 
            iamRole: iamRole, 
            outputLocation: outputLocation, 
            tags: tags, 
            worlds: worlds
        )
        return try await self.createWorldExportJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates worlds using the specified template.
    @Sendable
    @inlinable
    public func createWorldGenerationJob(_ input: CreateWorldGenerationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateWorldGenerationJobResponse {
        try await self.client.execute(
            operation: "CreateWorldGenerationJob", 
            path: "/createWorldGenerationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates worlds using the specified template.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - tags: A map that contains tag keys and tag values that are attached to the world generator job.
    ///   - template: The Amazon Resource Name (arn) of the world template describing the worlds you want to create.
    ///   - worldCount: Information about the world count.
    ///   - worldTags: A map that contains tag keys and tag values that are attached to the generated worlds.
    ///   - logger: Logger use during operation
    @inlinable
    public func createWorldGenerationJob(
        clientRequestToken: String? = CreateWorldGenerationJobRequest.idempotencyToken(),
        tags: [String: String]? = nil,
        template: String,
        worldCount: WorldCount,
        worldTags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateWorldGenerationJobResponse {
        let input = CreateWorldGenerationJobRequest(
            clientRequestToken: clientRequestToken, 
            tags: tags, 
            template: template, 
            worldCount: worldCount, 
            worldTags: worldTags
        )
        return try await self.createWorldGenerationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a world template.
    @Sendable
    @inlinable
    public func createWorldTemplate(_ input: CreateWorldTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> CreateWorldTemplateResponse {
        try await self.client.execute(
            operation: "CreateWorldTemplate", 
            path: "/createWorldTemplate", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Creates a world template.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - name: The name of the world template.
    ///   - tags: A map that contains tag keys and tag values that are attached to the world template.
    ///   - templateBody: The world template body.
    ///   - templateLocation: The location of the world template.
    ///   - logger: Logger use during operation
    @inlinable
    public func createWorldTemplate(
        clientRequestToken: String? = nil,
        name: String? = nil,
        tags: [String: String]? = nil,
        templateBody: String? = nil,
        templateLocation: TemplateLocation? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> CreateWorldTemplateResponse {
        let input = CreateWorldTemplateRequest(
            clientRequestToken: clientRequestToken, 
            name: name, 
            tags: tags, 
            templateBody: templateBody, 
            templateLocation: templateLocation
        )
        return try await self.createWorldTemplate(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deletes a fleet.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func deleteFleet(_ input: DeleteFleetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteFleetResponse {
        try await self.client.execute(
            operation: "DeleteFleet", 
            path: "/deleteFleet", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deletes a fleet.
    ///
    /// Parameters:
    ///   - fleet: The Amazon Resource Name (ARN) of the fleet.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func deleteFleet(
        fleet: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeleteFleetResponse {
        let input = DeleteFleetRequest(
            fleet: fleet
        )
        return try await self.deleteFleet(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deletes a robot.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func deleteRobot(_ input: DeleteRobotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRobotResponse {
        try await self.client.execute(
            operation: "DeleteRobot", 
            path: "/deleteRobot", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deletes a robot.
    ///
    /// Parameters:
    ///   - robot: The Amazon Resource Name (ARN) of the robot.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func deleteRobot(
        robot: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeleteRobotResponse {
        let input = DeleteRobotRequest(
            robot: robot
        )
        return try await self.deleteRobot(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a robot application.
    @Sendable
    @inlinable
    public func deleteRobotApplication(_ input: DeleteRobotApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteRobotApplicationResponse {
        try await self.client.execute(
            operation: "DeleteRobotApplication", 
            path: "/deleteRobotApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a robot application.
    ///
    /// Parameters:
    ///   - application: The Amazon Resource Name (ARN) of the the robot application.
    ///   - applicationVersion: The version of the robot application to delete.
    ///   - logger: Logger use during operation
    @inlinable
    public func deleteRobotApplication(
        application: String,
        applicationVersion: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeleteRobotApplicationResponse {
        let input = DeleteRobotApplicationRequest(
            application: application, 
            applicationVersion: applicationVersion
        )
        return try await self.deleteRobotApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a simulation application.
    @Sendable
    @inlinable
    public func deleteSimulationApplication(_ input: DeleteSimulationApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteSimulationApplicationResponse {
        try await self.client.execute(
            operation: "DeleteSimulationApplication", 
            path: "/deleteSimulationApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a simulation application.
    ///
    /// Parameters:
    ///   - application: The application information for the simulation application to delete.
    ///   - applicationVersion: The version of the simulation application to delete.
    ///   - logger: Logger use during operation
    @inlinable
    public func deleteSimulationApplication(
        application: String,
        applicationVersion: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeleteSimulationApplicationResponse {
        let input = DeleteSimulationApplicationRequest(
            application: application, 
            applicationVersion: applicationVersion
        )
        return try await self.deleteSimulationApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a world template.
    @Sendable
    @inlinable
    public func deleteWorldTemplate(_ input: DeleteWorldTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeleteWorldTemplateResponse {
        try await self.client.execute(
            operation: "DeleteWorldTemplate", 
            path: "/deleteWorldTemplate", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Deletes a world template.
    ///
    /// Parameters:
    ///   - template: The Amazon Resource Name (arn) of the world template you want to delete.
    ///   - logger: Logger use during operation
    @inlinable
    public func deleteWorldTemplate(
        template: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeleteWorldTemplateResponse {
        let input = DeleteWorldTemplateRequest(
            template: template
        )
        return try await self.deleteWorldTemplate(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deregisters a robot.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func deregisterRobot(_ input: DeregisterRobotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DeregisterRobotResponse {
        try await self.client.execute(
            operation: "DeregisterRobot", 
            path: "/deregisterRobot", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Deregisters a robot.
    ///
    /// Parameters:
    ///   - fleet: The Amazon Resource Name (ARN) of the fleet.
    ///   - robot: The Amazon Resource Name (ARN) of the robot.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func deregisterRobot(
        fleet: String,
        robot: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DeregisterRobotResponse {
        let input = DeregisterRobotRequest(
            fleet: fleet, 
            robot: robot
        )
        return try await self.deregisterRobot(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a deployment job.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func describeDeploymentJob(_ input: DescribeDeploymentJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeDeploymentJobResponse {
        try await self.client.execute(
            operation: "DescribeDeploymentJob", 
            path: "/describeDeploymentJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a deployment job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (ARN) of the deployment job.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func describeDeploymentJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeDeploymentJobResponse {
        let input = DescribeDeploymentJobRequest(
            job: job
        )
        return try await self.describeDeploymentJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a fleet.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func describeFleet(_ input: DescribeFleetRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeFleetResponse {
        try await self.client.execute(
            operation: "DescribeFleet", 
            path: "/describeFleet", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a fleet.
    ///
    /// Parameters:
    ///   - fleet: The Amazon Resource Name (ARN) of the fleet.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func describeFleet(
        fleet: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeFleetResponse {
        let input = DescribeFleetRequest(
            fleet: fleet
        )
        return try await self.describeFleet(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a robot.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func describeRobot(_ input: DescribeRobotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeRobotResponse {
        try await self.client.execute(
            operation: "DescribeRobot", 
            path: "/describeRobot", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.  Describes a robot.
    ///
    /// Parameters:
    ///   - robot: The Amazon Resource Name (ARN) of the robot to be described.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func describeRobot(
        robot: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeRobotResponse {
        let input = DescribeRobotRequest(
            robot: robot
        )
        return try await self.describeRobot(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a robot application.
    @Sendable
    @inlinable
    public func describeRobotApplication(_ input: DescribeRobotApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeRobotApplicationResponse {
        try await self.client.execute(
            operation: "DescribeRobotApplication", 
            path: "/describeRobotApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a robot application.
    ///
    /// Parameters:
    ///   - application: The Amazon Resource Name (ARN) of the robot application.
    ///   - applicationVersion: The version of the robot application to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeRobotApplication(
        application: String,
        applicationVersion: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeRobotApplicationResponse {
        let input = DescribeRobotApplicationRequest(
            application: application, 
            applicationVersion: applicationVersion
        )
        return try await self.describeRobotApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation application.
    @Sendable
    @inlinable
    public func describeSimulationApplication(_ input: DescribeSimulationApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeSimulationApplicationResponse {
        try await self.client.execute(
            operation: "DescribeSimulationApplication", 
            path: "/describeSimulationApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation application.
    ///
    /// Parameters:
    ///   - application: The application information for the simulation application.
    ///   - applicationVersion: The version of the simulation application to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeSimulationApplication(
        application: String,
        applicationVersion: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeSimulationApplicationResponse {
        let input = DescribeSimulationApplicationRequest(
            application: application, 
            applicationVersion: applicationVersion
        )
        return try await self.describeSimulationApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation job.
    @Sendable
    @inlinable
    public func describeSimulationJob(_ input: DescribeSimulationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeSimulationJobResponse {
        try await self.client.execute(
            operation: "DescribeSimulationJob", 
            path: "/describeSimulationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (ARN) of the simulation job to be described.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeSimulationJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeSimulationJobResponse {
        let input = DescribeSimulationJobRequest(
            job: job
        )
        return try await self.describeSimulationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation job batch.
    @Sendable
    @inlinable
    public func describeSimulationJobBatch(_ input: DescribeSimulationJobBatchRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeSimulationJobBatchResponse {
        try await self.client.execute(
            operation: "DescribeSimulationJobBatch", 
            path: "/describeSimulationJobBatch", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a simulation job batch.
    ///
    /// Parameters:
    ///   - batch: The id of the batch to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeSimulationJobBatch(
        batch: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeSimulationJobBatchResponse {
        let input = DescribeSimulationJobBatchRequest(
            batch: batch
        )
        return try await self.describeSimulationJobBatch(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world.
    @Sendable
    @inlinable
    public func describeWorld(_ input: DescribeWorldRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeWorldResponse {
        try await self.client.execute(
            operation: "DescribeWorld", 
            path: "/describeWorld", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world.
    ///
    /// Parameters:
    ///   - world: The Amazon Resource Name (arn) of the world you want to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeWorld(
        world: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeWorldResponse {
        let input = DescribeWorldRequest(
            world: world
        )
        return try await self.describeWorld(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world export job.
    @Sendable
    @inlinable
    public func describeWorldExportJob(_ input: DescribeWorldExportJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeWorldExportJobResponse {
        try await self.client.execute(
            operation: "DescribeWorldExportJob", 
            path: "/describeWorldExportJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world export job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (arn) of the world export job to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeWorldExportJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeWorldExportJobResponse {
        let input = DescribeWorldExportJobRequest(
            job: job
        )
        return try await self.describeWorldExportJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world generation job.
    @Sendable
    @inlinable
    public func describeWorldGenerationJob(_ input: DescribeWorldGenerationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeWorldGenerationJobResponse {
        try await self.client.execute(
            operation: "DescribeWorldGenerationJob", 
            path: "/describeWorldGenerationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world generation job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (arn) of the world generation job to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeWorldGenerationJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeWorldGenerationJobResponse {
        let input = DescribeWorldGenerationJobRequest(
            job: job
        )
        return try await self.describeWorldGenerationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world template.
    @Sendable
    @inlinable
    public func describeWorldTemplate(_ input: DescribeWorldTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> DescribeWorldTemplateResponse {
        try await self.client.execute(
            operation: "DescribeWorldTemplate", 
            path: "/describeWorldTemplate", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Describes a world template.
    ///
    /// Parameters:
    ///   - template: The Amazon Resource Name (arn) of the world template you want to describe.
    ///   - logger: Logger use during operation
    @inlinable
    public func describeWorldTemplate(
        template: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> DescribeWorldTemplateResponse {
        let input = DescribeWorldTemplateRequest(
            template: template
        )
        return try await self.describeWorldTemplate(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Gets the world template body.
    @Sendable
    @inlinable
    public func getWorldTemplateBody(_ input: GetWorldTemplateBodyRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> GetWorldTemplateBodyResponse {
        try await self.client.execute(
            operation: "GetWorldTemplateBody", 
            path: "/getWorldTemplateBody", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Gets the world template body.
    ///
    /// Parameters:
    ///   - generationJob: The Amazon Resource Name (arn) of the world generator job.
    ///   - template: The Amazon Resource Name (arn) of the world template.
    ///   - logger: Logger use during operation
    @inlinable
    public func getWorldTemplateBody(
        generationJob: String? = nil,
        template: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> GetWorldTemplateBodyResponse {
        let input = GetWorldTemplateBodyRequest(
            generationJob: generationJob, 
            template: template
        )
        return try await self.getWorldTemplateBody(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of deployment jobs for a fleet. You can optionally provide filters to retrieve specific deployment jobs.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func listDeploymentJobs(_ input: ListDeploymentJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListDeploymentJobsResponse {
        try await self.client.execute(
            operation: "ListDeploymentJobs", 
            path: "/listDeploymentJobs", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of deployment jobs for a fleet. You can optionally provide filters to retrieve specific deployment jobs.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and fleetName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status InProgress or the status Pending.
    ///   - maxResults: When this parameter is used, ListDeploymentJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListDeploymentJobs request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListDeploymentJobs returns up to 200 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListDeploymentJobs again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listDeploymentJobs(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListDeploymentJobsResponse {
        let input = ListDeploymentJobsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listDeploymentJobs(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of fleets. You can optionally provide filters to retrieve specific fleets.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func listFleets(_ input: ListFleetsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListFleetsResponse {
        try await self.client.execute(
            operation: "ListFleets", 
            path: "/listFleets", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of fleets. You can optionally provide filters to retrieve specific fleets.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListFleets only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListFleets request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListFleets returns up to 200 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListFleets again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.   This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listFleets(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListFleetsResponse {
        let input = ListFleetsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listFleets(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of robot application. You can optionally provide filters to retrieve specific robot applications.
    @Sendable
    @inlinable
    public func listRobotApplications(_ input: ListRobotApplicationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListRobotApplicationsResponse {
        try await self.client.execute(
            operation: "ListRobotApplications", 
            path: "/listRobotApplications", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of robot application. You can optionally provide filters to retrieve specific robot applications.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListRobotApplications only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListRobotApplications request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListRobotApplications returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListRobotApplications again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - versionQualifier: The version qualifier of the robot application.
    ///   - logger: Logger use during operation
    @inlinable
    public func listRobotApplications(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        versionQualifier: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListRobotApplicationsResponse {
        let input = ListRobotApplicationsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken, 
            versionQualifier: versionQualifier
        )
        return try await self.listRobotApplications(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of robots. You can optionally provide filters to retrieve specific robots.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func listRobots(_ input: ListRobotsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListRobotsResponse {
        try await self.client.execute(
            operation: "ListRobots", 
            path: "/listRobots", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Returns a list of robots. You can optionally provide filters to retrieve specific robots.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and fleetName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status Registered or the status Available.
    ///   - maxResults: When this parameter is used, ListRobots only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListRobots request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListRobots returns up to 200 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListRobots again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listRobots(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListRobotsResponse {
        let input = ListRobotsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listRobots(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of simulation applications. You can optionally provide filters to retrieve specific simulation applications.
    @Sendable
    @inlinable
    public func listSimulationApplications(_ input: ListSimulationApplicationsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSimulationApplicationsResponse {
        try await self.client.execute(
            operation: "ListSimulationApplications", 
            path: "/listSimulationApplications", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of simulation applications. You can optionally provide filters to retrieve specific simulation applications.
    ///
    /// Parameters:
    ///   - filters: Optional list of filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListSimulationApplications only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationApplications request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListSimulationApplications returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListSimulationApplications again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - versionQualifier: The version qualifier of the simulation application.
    ///   - logger: Logger use during operation
    @inlinable
    public func listSimulationApplications(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        versionQualifier: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListSimulationApplicationsResponse {
        let input = ListSimulationApplicationsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken, 
            versionQualifier: versionQualifier
        )
        return try await self.listSimulationApplications(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list simulation job batches. You can optionally provide filters to retrieve specific simulation batch jobs.
    @Sendable
    @inlinable
    public func listSimulationJobBatches(_ input: ListSimulationJobBatchesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSimulationJobBatchesResponse {
        try await self.client.execute(
            operation: "ListSimulationJobBatches", 
            path: "/listSimulationJobBatches", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list simulation job batches. You can optionally provide filters to retrieve specific simulation batch jobs.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results.
    ///   - maxResults: When this parameter is used, ListSimulationJobBatches only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationJobBatches request with the returned nextToken value.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListSimulationJobBatches again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listSimulationJobBatches(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListSimulationJobBatchesResponse {
        let input = ListSimulationJobBatchesRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listSimulationJobBatches(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of simulation jobs. You can optionally provide filters to retrieve specific simulation jobs.
    @Sendable
    @inlinable
    public func listSimulationJobs(_ input: ListSimulationJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListSimulationJobsResponse {
        try await self.client.execute(
            operation: "ListSimulationJobs", 
            path: "/listSimulationJobs", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Returns a list of simulation jobs. You can optionally provide filters to retrieve specific simulation jobs.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and simulationApplicationName and robotApplicationName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status Preparing or the status Running.
    ///   - maxResults: When this parameter is used, ListSimulationJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationJobs request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then ListSimulationJobs returns up to 1000 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListSimulationJobs again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listSimulationJobs(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListSimulationJobsResponse {
        let input = ListSimulationJobsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listSimulationJobs(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists all tags on a AWS RoboMaker resource.
    @Sendable
    @inlinable
    public func listTagsForResource(_ input: ListTagsForResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListTagsForResourceResponse {
        try await self.client.execute(
            operation: "ListTagsForResource", 
            path: "/tags/{resourceArn}", 
            httpMethod: .GET, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists all tags on a AWS RoboMaker resource.
    ///
    /// Parameters:
    ///   - resourceArn: The AWS RoboMaker Amazon Resource Name (ARN) with tags to be listed.
    ///   - logger: Logger use during operation
    @inlinable
    public func listTagsForResource(
        resourceArn: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListTagsForResourceResponse {
        let input = ListTagsForResourceRequest(
            resourceArn: resourceArn
        )
        return try await self.listTagsForResource(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world export jobs.
    @Sendable
    @inlinable
    public func listWorldExportJobs(_ input: ListWorldExportJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListWorldExportJobsResponse {
        try await self.client.execute(
            operation: "ListWorldExportJobs", 
            path: "/listWorldExportJobs", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world export jobs.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. You can use generationJobId and templateId.
    ///   - maxResults: When this parameter is used, ListWorldExportJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldExportJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldExportJobs returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListWorldExportJobs again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listWorldExportJobs(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListWorldExportJobsResponse {
        let input = ListWorldExportJobsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listWorldExportJobs(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world generator jobs.
    @Sendable
    @inlinable
    public func listWorldGenerationJobs(_ input: ListWorldGenerationJobsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListWorldGenerationJobsResponse {
        try await self.client.execute(
            operation: "ListWorldGenerationJobs", 
            path: "/listWorldGenerationJobs", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world generator jobs.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. You can use status and templateId.
    ///   - maxResults: When this parameter is used, ListWorldGeneratorJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldGeneratorJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldGeneratorJobs returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListWorldGenerationJobsRequest again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listWorldGenerationJobs(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListWorldGenerationJobsResponse {
        let input = ListWorldGenerationJobsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listWorldGenerationJobs(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world templates.
    @Sendable
    @inlinable
    public func listWorldTemplates(_ input: ListWorldTemplatesRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListWorldTemplatesResponse {
        try await self.client.execute(
            operation: "ListWorldTemplates", 
            path: "/listWorldTemplates", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists world templates.
    ///
    /// Parameters:
    ///   - maxResults: When this parameter is used, ListWorldTemplates only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldTemplates request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldTemplates returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListWorldTemplates again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listWorldTemplates(
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListWorldTemplatesResponse {
        let input = ListWorldTemplatesRequest(
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listWorldTemplates(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists worlds.
    @Sendable
    @inlinable
    public func listWorlds(_ input: ListWorldsRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> ListWorldsResponse {
        try await self.client.execute(
            operation: "ListWorlds", 
            path: "/listWorlds", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Lists worlds.
    ///
    /// Parameters:
    ///   - filters: Optional filters to limit results. You can use status.
    ///   - maxResults: When this parameter is used, ListWorlds only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorlds request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorlds returns up to 100 results and a nextToken value if applicable.
    ///   - nextToken: If the previous paginated request did not return all of the remaining results, the response object's nextToken parameter value is set to a token. To retrieve the next set of results, call ListWorlds again and assign that token to the request object's nextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.
    ///   - logger: Logger use during operation
    @inlinable
    public func listWorlds(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        nextToken: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> ListWorldsResponse {
        let input = ListWorldsRequest(
            filters: filters, 
            maxResults: maxResults, 
            nextToken: nextToken
        )
        return try await self.listWorlds(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Registers a robot with a fleet.  This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func registerRobot(_ input: RegisterRobotRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RegisterRobotResponse {
        try await self.client.execute(
            operation: "RegisterRobot", 
            path: "/registerRobot", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Registers a robot with a fleet.  This API is no longer supported and will throw an error if used. For more information, see the January 31, 2022 update in the Support policy page.
    ///
    /// Parameters:
    ///   - fleet: The Amazon Resource Name (ARN) of the fleet.
    ///   - robot: The Amazon Resource Name (ARN) of the robot.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "AWS RoboMaker is unable to process this request as the support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func registerRobot(
        fleet: String,
        robot: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> RegisterRobotResponse {
        let input = RegisterRobotRequest(
            fleet: fleet, 
            robot: robot
        )
        return try await self.registerRobot(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Restarts a running simulation job.
    @Sendable
    @inlinable
    public func restartSimulationJob(_ input: RestartSimulationJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> RestartSimulationJobResponse {
        try await self.client.execute(
            operation: "RestartSimulationJob", 
            path: "/restartSimulationJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Restarts a running simulation job.
    ///
    /// Parameters:
    ///   - job: The Amazon Resource Name (ARN) of the simulation job.
    ///   - logger: Logger use during operation
    @inlinable
    public func restartSimulationJob(
        job: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> RestartSimulationJobResponse {
        let input = RestartSimulationJobRequest(
            job: job
        )
        return try await self.restartSimulationJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Starts a new simulation job batch. The batch is defined using one or more SimulationJobRequest objects.
    @Sendable
    @inlinable
    public func startSimulationJobBatch(_ input: StartSimulationJobBatchRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> StartSimulationJobBatchResponse {
        try await self.client.execute(
            operation: "StartSimulationJobBatch", 
            path: "/startSimulationJobBatch", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Starts a new simulation job batch. The batch is defined using one or more SimulationJobRequest objects.
    ///
    /// Parameters:
    ///   - batchPolicy: The batch policy.
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - createSimulationJobRequests: A list of simulation job requests to create in the batch.
    ///   - tags: A map that contains tag keys and tag values that are attached to the deployment job batch.
    ///   - logger: Logger use during operation
    @inlinable
    public func startSimulationJobBatch(
        batchPolicy: BatchPolicy? = nil,
        clientRequestToken: String? = StartSimulationJobBatchRequest.idempotencyToken(),
        createSimulationJobRequests: [SimulationJobRequest],
        tags: [String: String]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> StartSimulationJobBatchResponse {
        let input = StartSimulationJobBatchRequest(
            batchPolicy: batchPolicy, 
            clientRequestToken: clientRequestToken, 
            createSimulationJobRequests: createSimulationJobRequests, 
            tags: tags
        )
        return try await self.startSimulationJobBatch(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Syncrhonizes robots in a fleet to the latest deployment. This is helpful if robots were added after a deployment.
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @Sendable
    @inlinable
    public func syncDeploymentJob(_ input: SyncDeploymentJobRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> SyncDeploymentJobResponse {
        try await self.client.execute(
            operation: "SyncDeploymentJob", 
            path: "/syncDeploymentJob", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.    This API is no longer supported. For more information, see the May 2, 2022 update in the Support policy page.   Syncrhonizes robots in a fleet to the latest deployment. This is helpful if robots were added after a deployment.
    ///
    /// Parameters:
    ///   - clientRequestToken: Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
    ///   - fleet: The target fleet for the synchronization.
    ///   - logger: Logger use during operation
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func syncDeploymentJob(
        clientRequestToken: String = SyncDeploymentJobRequest.idempotencyToken(),
        fleet: String,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> SyncDeploymentJobResponse {
        let input = SyncDeploymentJobRequest(
            clientRequestToken: clientRequestToken, 
            fleet: fleet
        )
        return try await self.syncDeploymentJob(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Adds or edits tags for a AWS RoboMaker resource. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty strings.  For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.
    @Sendable
    @inlinable
    public func tagResource(_ input: TagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> TagResourceResponse {
        try await self.client.execute(
            operation: "TagResource", 
            path: "/tags/{resourceArn}", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Adds or edits tags for a AWS RoboMaker resource. Each tag consists of a tag key and a tag value. Tag keys and tag values are both required, but tag values can be empty strings.  For information about the rules that apply to tag keys and tag values, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.
    ///
    /// Parameters:
    ///   - resourceArn: The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are tagging.
    ///   - tags: A map that contains tag keys and tag values that are attached to the resource.
    ///   - logger: Logger use during operation
    @inlinable
    public func tagResource(
        resourceArn: String,
        tags: [String: String],
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> TagResourceResponse {
        let input = TagResourceRequest(
            resourceArn: resourceArn, 
            tags: tags
        )
        return try await self.tagResource(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Removes the specified tags from the specified AWS RoboMaker resource. To remove a tag, specify the tag key. To change the tag value of an existing tag key, use  TagResource .
    @Sendable
    @inlinable
    public func untagResource(_ input: UntagResourceRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UntagResourceResponse {
        try await self.client.execute(
            operation: "UntagResource", 
            path: "/tags/{resourceArn}", 
            httpMethod: .DELETE, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Removes the specified tags from the specified AWS RoboMaker resource. To remove a tag, specify the tag key. To change the tag value of an existing tag key, use  TagResource .
    ///
    /// Parameters:
    ///   - resourceArn: The Amazon Resource Name (ARN) of the AWS RoboMaker resource you are removing tags.
    ///   - tagKeys: A map that contains tag keys and tag values that will be unattached from the resource.
    ///   - logger: Logger use during operation
    @inlinable
    public func untagResource(
        resourceArn: String,
        tagKeys: [String],
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> UntagResourceResponse {
        let input = UntagResourceRequest(
            resourceArn: resourceArn, 
            tagKeys: tagKeys
        )
        return try await self.untagResource(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a robot application.
    @Sendable
    @inlinable
    public func updateRobotApplication(_ input: UpdateRobotApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateRobotApplicationResponse {
        try await self.client.execute(
            operation: "UpdateRobotApplication", 
            path: "/updateRobotApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a robot application.
    ///
    /// Parameters:
    ///   - application: The application information for the robot application.
    ///   - currentRevisionId: The revision id for the robot application.
    ///   - environment: The object that contains the Docker image URI for your robot application.
    ///   - robotSoftwareSuite: The robot software suite used by the robot application.
    ///   - sources: The sources of the robot application.
    ///   - logger: Logger use during operation
    @inlinable
    public func updateRobotApplication(
        application: String,
        currentRevisionId: String? = nil,
        environment: Environment? = nil,
        robotSoftwareSuite: RobotSoftwareSuite,
        sources: [SourceConfig]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> UpdateRobotApplicationResponse {
        let input = UpdateRobotApplicationRequest(
            application: application, 
            currentRevisionId: currentRevisionId, 
            environment: environment, 
            robotSoftwareSuite: robotSoftwareSuite, 
            sources: sources
        )
        return try await self.updateRobotApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a simulation application.
    @Sendable
    @inlinable
    public func updateSimulationApplication(_ input: UpdateSimulationApplicationRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateSimulationApplicationResponse {
        try await self.client.execute(
            operation: "UpdateSimulationApplication", 
            path: "/updateSimulationApplication", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a simulation application.
    ///
    /// Parameters:
    ///   - application: The application information for the simulation application.
    ///   - currentRevisionId: The revision id for the robot application.
    ///   - environment: The object that contains the Docker image URI for your simulation application.
    ///   - renderingEngine: The rendering engine for the simulation application.
    ///   - robotSoftwareSuite: Information about the robot software suite.
    ///   - simulationSoftwareSuite: The simulation software suite used by the simulation application.
    ///   - sources: The sources of the simulation application.
    ///   - logger: Logger use during operation
    @inlinable
    public func updateSimulationApplication(
        application: String,
        currentRevisionId: String? = nil,
        environment: Environment? = nil,
        renderingEngine: RenderingEngine? = nil,
        robotSoftwareSuite: RobotSoftwareSuite,
        simulationSoftwareSuite: SimulationSoftwareSuite,
        sources: [SourceConfig]? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> UpdateSimulationApplicationResponse {
        let input = UpdateSimulationApplicationRequest(
            application: application, 
            currentRevisionId: currentRevisionId, 
            environment: environment, 
            renderingEngine: renderingEngine, 
            robotSoftwareSuite: robotSoftwareSuite, 
            simulationSoftwareSuite: simulationSoftwareSuite, 
            sources: sources
        )
        return try await self.updateSimulationApplication(input, logger: logger)
    }

    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a world template.
    @Sendable
    @inlinable
    public func updateWorldTemplate(_ input: UpdateWorldTemplateRequest, logger: Logger = AWSClient.loggingDisabled) async throws -> UpdateWorldTemplateResponse {
        try await self.client.execute(
            operation: "UpdateWorldTemplate", 
            path: "/updateWorldTemplate", 
            httpMethod: .POST, 
            serviceConfig: self.config, 
            input: input, 
            logger: logger
        )
    }
    ///  End of support notice: On September 10, 2025, Amazon Web Services will discontinue support for Amazon Web Services RoboMaker. After September 10, 2025, you will no longer be able to access the Amazon Web Services RoboMaker console or Amazon Web Services RoboMaker resources.  For more information on transitioning to Batch to help run containerized simulations, visit https://aws.amazon.com/blogs/hpc/run-simulations-using-multiple-containers-in-a-single-aws-batch-job/.   Updates a world template.
    ///
    /// Parameters:
    ///   - name: The name of the template.
    ///   - template: The Amazon Resource Name (arn) of the world template to update.
    ///   - templateBody: The world template body.
    ///   - templateLocation: The location of the world template.
    ///   - logger: Logger use during operation
    @inlinable
    public func updateWorldTemplate(
        name: String? = nil,
        template: String,
        templateBody: String? = nil,
        templateLocation: TemplateLocation? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) async throws -> UpdateWorldTemplateResponse {
        let input = UpdateWorldTemplateRequest(
            name: name, 
            template: template, 
            templateBody: templateBody, 
            templateLocation: templateLocation
        )
        return try await self.updateWorldTemplate(input, logger: logger)
    }
}

extension RoboMaker {
    /// Initializer required by `AWSService.with(middlewares:timeout:byteBufferAllocator:options)`. You are not able to use this initializer directly as there are not public
    /// initializers for `AWSServiceConfig.Patch`. Please use `AWSService.with(middlewares:timeout:byteBufferAllocator:options)` instead.
    public init(from: RoboMaker, patch: AWSServiceConfig.Patch) {
        self.client = from.client
        self.config = from.config.with(patch: patch)
    }
}

// MARK: Paginators

@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
extension RoboMaker {
    /// Return PaginatorSequence for operation ``listDeploymentJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listDeploymentJobsPaginator(
        _ input: ListDeploymentJobsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListDeploymentJobsRequest, ListDeploymentJobsResponse> {
        return .init(
            input: input,
            command: self.listDeploymentJobs,
            inputKey: \ListDeploymentJobsRequest.nextToken,
            outputKey: \ListDeploymentJobsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listDeploymentJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and fleetName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status InProgress or the status Pending.
    ///   - maxResults: When this parameter is used, ListDeploymentJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListDeploymentJobs request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListDeploymentJobs returns up to 200 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listDeploymentJobsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListDeploymentJobsRequest, ListDeploymentJobsResponse> {
        let input = ListDeploymentJobsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listDeploymentJobsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listFleets(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listFleetsPaginator(
        _ input: ListFleetsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListFleetsRequest, ListFleetsResponse> {
        return .init(
            input: input,
            command: self.listFleets,
            inputKey: \ListFleetsRequest.nextToken,
            outputKey: \ListFleetsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listFleets(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListFleets only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListFleets request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListFleets returns up to 200 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listFleetsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListFleetsRequest, ListFleetsResponse> {
        let input = ListFleetsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listFleetsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listRobotApplications(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listRobotApplicationsPaginator(
        _ input: ListRobotApplicationsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListRobotApplicationsRequest, ListRobotApplicationsResponse> {
        return .init(
            input: input,
            command: self.listRobotApplications,
            inputKey: \ListRobotApplicationsRequest.nextToken,
            outputKey: \ListRobotApplicationsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listRobotApplications(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListRobotApplications only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListRobotApplications request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListRobotApplications returns up to 100 results and a nextToken value if applicable.
    ///   - versionQualifier: The version qualifier of the robot application.
    ///   - logger: Logger used for logging
    @inlinable
    public func listRobotApplicationsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        versionQualifier: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListRobotApplicationsRequest, ListRobotApplicationsResponse> {
        let input = ListRobotApplicationsRequest(
            filters: filters, 
            maxResults: maxResults, 
            versionQualifier: versionQualifier
        )
        return self.listRobotApplicationsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listRobots(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listRobotsPaginator(
        _ input: ListRobotsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListRobotsRequest, ListRobotsResponse> {
        return .init(
            input: input,
            command: self.listRobots,
            inputKey: \ListRobotsRequest.nextToken,
            outputKey: \ListRobotsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listRobots(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and fleetName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status Registered or the status Available.
    ///   - maxResults: When this parameter is used, ListRobots only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListRobots request with the returned nextToken value. This value can be between 1 and 200. If this parameter is not used, then ListRobots returns up to 200 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @available(*, deprecated, message: "Support for the AWS RoboMaker application deployment feature has ended. For additional information, see https://docs.aws.amazon.com/robomaker/latest/dg/fleets.html.")
    @inlinable
    public func listRobotsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListRobotsRequest, ListRobotsResponse> {
        let input = ListRobotsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listRobotsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listSimulationApplications(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationApplicationsPaginator(
        _ input: ListSimulationApplicationsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListSimulationApplicationsRequest, ListSimulationApplicationsResponse> {
        return .init(
            input: input,
            command: self.listSimulationApplications,
            inputKey: \ListSimulationApplicationsRequest.nextToken,
            outputKey: \ListSimulationApplicationsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listSimulationApplications(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional list of filters to limit results. The filter name name is supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters.
    ///   - maxResults: When this parameter is used, ListSimulationApplications only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationApplications request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListSimulationApplications returns up to 100 results and a nextToken value if applicable.
    ///   - versionQualifier: The version qualifier of the simulation application.
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationApplicationsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        versionQualifier: String? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListSimulationApplicationsRequest, ListSimulationApplicationsResponse> {
        let input = ListSimulationApplicationsRequest(
            filters: filters, 
            maxResults: maxResults, 
            versionQualifier: versionQualifier
        )
        return self.listSimulationApplicationsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listSimulationJobBatches(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationJobBatchesPaginator(
        _ input: ListSimulationJobBatchesRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListSimulationJobBatchesRequest, ListSimulationJobBatchesResponse> {
        return .init(
            input: input,
            command: self.listSimulationJobBatches,
            inputKey: \ListSimulationJobBatchesRequest.nextToken,
            outputKey: \ListSimulationJobBatchesResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listSimulationJobBatches(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results.
    ///   - maxResults: When this parameter is used, ListSimulationJobBatches only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationJobBatches request with the returned nextToken value.
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationJobBatchesPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListSimulationJobBatchesRequest, ListSimulationJobBatchesResponse> {
        let input = ListSimulationJobBatchesRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listSimulationJobBatchesPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listSimulationJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationJobsPaginator(
        _ input: ListSimulationJobsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListSimulationJobsRequest, ListSimulationJobsResponse> {
        return .init(
            input: input,
            command: self.listSimulationJobs,
            inputKey: \ListSimulationJobsRequest.nextToken,
            outputKey: \ListSimulationJobsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listSimulationJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. The filter names status and simulationApplicationName and robotApplicationName are supported. When filtering, you must use the complete value of the filtered item. You can use up to three filters, but they must be for the same named item. For example, if you are looking for items with the status Preparing or the status Running.
    ///   - maxResults: When this parameter is used, ListSimulationJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListSimulationJobs request with the returned nextToken value. This value can be between 1 and 1000. If this parameter is not used, then ListSimulationJobs returns up to 1000 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @inlinable
    public func listSimulationJobsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListSimulationJobsRequest, ListSimulationJobsResponse> {
        let input = ListSimulationJobsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listSimulationJobsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listWorldExportJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldExportJobsPaginator(
        _ input: ListWorldExportJobsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListWorldExportJobsRequest, ListWorldExportJobsResponse> {
        return .init(
            input: input,
            command: self.listWorldExportJobs,
            inputKey: \ListWorldExportJobsRequest.nextToken,
            outputKey: \ListWorldExportJobsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listWorldExportJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. You can use generationJobId and templateId.
    ///   - maxResults: When this parameter is used, ListWorldExportJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldExportJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldExportJobs returns up to 100 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldExportJobsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListWorldExportJobsRequest, ListWorldExportJobsResponse> {
        let input = ListWorldExportJobsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listWorldExportJobsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listWorldGenerationJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldGenerationJobsPaginator(
        _ input: ListWorldGenerationJobsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListWorldGenerationJobsRequest, ListWorldGenerationJobsResponse> {
        return .init(
            input: input,
            command: self.listWorldGenerationJobs,
            inputKey: \ListWorldGenerationJobsRequest.nextToken,
            outputKey: \ListWorldGenerationJobsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listWorldGenerationJobs(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. You can use status and templateId.
    ///   - maxResults: When this parameter is used, ListWorldGeneratorJobs only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldGeneratorJobs request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldGeneratorJobs returns up to 100 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldGenerationJobsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListWorldGenerationJobsRequest, ListWorldGenerationJobsResponse> {
        let input = ListWorldGenerationJobsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listWorldGenerationJobsPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listWorldTemplates(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldTemplatesPaginator(
        _ input: ListWorldTemplatesRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListWorldTemplatesRequest, ListWorldTemplatesResponse> {
        return .init(
            input: input,
            command: self.listWorldTemplates,
            inputKey: \ListWorldTemplatesRequest.nextToken,
            outputKey: \ListWorldTemplatesResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listWorldTemplates(_:logger:)``.
    ///
    /// - Parameters:
    ///   - maxResults: When this parameter is used, ListWorldTemplates only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorldTemplates request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorldTemplates returns up to 100 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldTemplatesPaginator(
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListWorldTemplatesRequest, ListWorldTemplatesResponse> {
        let input = ListWorldTemplatesRequest(
            maxResults: maxResults
        )
        return self.listWorldTemplatesPaginator(input, logger: logger)
    }

    /// Return PaginatorSequence for operation ``listWorlds(_:logger:)``.
    ///
    /// - Parameters:
    ///   - input: Input for operation
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldsPaginator(
        _ input: ListWorldsRequest,
        logger: Logger = AWSClient.loggingDisabled
    ) -> AWSClient.PaginatorSequence<ListWorldsRequest, ListWorldsResponse> {
        return .init(
            input: input,
            command: self.listWorlds,
            inputKey: \ListWorldsRequest.nextToken,
            outputKey: \ListWorldsResponse.nextToken,
            logger: logger
        )
    }
    /// Return PaginatorSequence for operation ``listWorlds(_:logger:)``.
    ///
    /// - Parameters:
    ///   - filters: Optional filters to limit results. You can use status.
    ///   - maxResults: When this parameter is used, ListWorlds only returns maxResults results in a single page along with a nextToken response element. The remaining results of the initial request can be seen by sending another ListWorlds request with the returned nextToken value. This value can be between 1 and 100. If this parameter is not used, then ListWorlds returns up to 100 results and a nextToken value if applicable.
    ///   - logger: Logger used for logging
    @inlinable
    public func listWorldsPaginator(
        filters: [Filter]? = nil,
        maxResults: Int? = nil,
        logger: Logger = AWSClient.loggingDisabled        
    ) -> AWSClient.PaginatorSequence<ListWorldsRequest, ListWorldsResponse> {
        let input = ListWorldsRequest(
            filters: filters, 
            maxResults: maxResults
        )
        return self.listWorldsPaginator(input, logger: logger)
    }
}

extension RoboMaker.ListDeploymentJobsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListDeploymentJobsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListFleetsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListFleetsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListRobotApplicationsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListRobotApplicationsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token,
            versionQualifier: self.versionQualifier
        )
    }
}

extension RoboMaker.ListRobotsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListRobotsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListSimulationApplicationsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListSimulationApplicationsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token,
            versionQualifier: self.versionQualifier
        )
    }
}

extension RoboMaker.ListSimulationJobBatchesRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListSimulationJobBatchesRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListSimulationJobsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListSimulationJobsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListWorldExportJobsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListWorldExportJobsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListWorldGenerationJobsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListWorldGenerationJobsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListWorldTemplatesRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListWorldTemplatesRequest {
        return .init(
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}

extension RoboMaker.ListWorldsRequest: AWSPaginateToken {
    @inlinable
    public func usingPaginationToken(_ token: String) -> RoboMaker.ListWorldsRequest {
        return .init(
            filters: self.filters,
            maxResults: self.maxResults,
            nextToken: token
        )
    }
}
